// 默认参数值

function createPoint(x: number = 0, y: number = 0): [number, number] {
  return [x, y]
}

const point = createPoint()
console.log(point)

// 可选参数与默认值不能同时使用
// function f(x?: number = 0) {}

// 设有默认值的参数，如果传入undefined，也会触发默认值
function f(x: number = 666) {
  console.log(x)
}

f(undefined)
f(888)

// 具有默认值的参数如果不位于参数列表的末尾，调用时不能省略，
// 如果要触发默认值，必须显式传入undefined
function add(x: number = 0, y: number) {
  return x + y
}

// add(1) // 错误
add(undefined, 2) // 正确  使用 undefined 显式触发默认值
